package vista;

import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.ImageIcon;
import javax.swing.table.TableModel;

import java.io.File;
import java.awt.event.ActionListener;
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
import java.awt.event.WindowListener;
import java.awt.event.ItemListener;

public class VentanaVenta extends JFrame
{
	private JButton btnAceptar,btnAgregar,btnRemover,btnCancelar,btnSalir,btnBuscarCliente;
    private JTextField txtPorcImpuesto,txtPorcDescuento,txtCliente;
    private JLabel lblNroFactura,lblFecha,lblTotal;
    private JTable tabla;
    
	public VentanaVenta()
	{
		 super("Ventas");
		 
		 ImageIcon imgAceptar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "aceptar.png"));
		 ImageIcon imgAgregar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "agregar.png"));
		 ImageIcon imgRemover= new ImageIcon(getClass().getResource("imagenes" + File.separator + "remover.png"));
	     ImageIcon imgCancelar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "cancelar.png"));
	     ImageIcon imgSalir= new ImageIcon(getClass().getResource("imagenes" + File.separator + "salir.png"));
		 
	          
	     PanelFondo panelFondo= new PanelFondo();
	     PanelFrente panelFrente= new PanelFrente();
	     
	     JLabel lblTitulo= new JLabel("VENTA");
	     JLabel lblFactura= new JLabel("Nro Factura: ");
	     JLabel lblCliente= new JLabel("Cliente: ");
	     JLabel lblFechaE= new JLabel("Fecha Emision: ");
	     JLabel lblPorcDescuento= new JLabel("Porc Descuento:");
	     JLabel lblPorcImpuesto= new JLabel("Porc Impuesto:");
	     JLabel lblProductos= new JLabel("PRODUCTOS");
	     JLabel lblTotalPagar= new JLabel("Total BsF: ");
	     
	     lblNroFactura= new JLabel("1000");
	     lblFecha= new JLabel("00/00/0000");
	     lblTotal= new JLabel("0.0");
	     
	     
	     JToolBar barraHerramientas= new JToolBar(),barraEdicion= new JToolBar();
	     
	      
	     btnBuscarCliente= new JButton("...");
	     btnAgregar= new JButton("AGREGAR",imgAgregar);
	     btnRemover= new JButton("ELIMINAR",imgRemover);
	     btnAceptar= new JButton("ACEPTAR",imgAceptar);
	     btnCancelar= new JButton("CANCELAR",imgCancelar);
	     btnSalir= new JButton("SALIR",imgSalir);
	        
	     btnBuscarCliente.setActionCommand("Buscar Cliente");
	     
	    txtPorcImpuesto= new JTextField();
	    txtPorcDescuento= new JTextField();
	    txtCliente= new JTextField();
	      
	        
	    txtPorcImpuesto.setName("txtPorcImpuesto");
	    txtPorcDescuento.setName("txtPorcDescuento");
	    txtCliente.setName("txtCliente");
	        
	    txtCliente.setEnabled(false); 

	    barraHerramientas.setFloatable(false);
	    barraHerramientas.setOpaque(false);
	    barraHerramientas.setBorderPainted(false);
	        
	    barraEdicion.setFloatable(false);
	    barraEdicion.setOpaque(false);
	    barraEdicion.setBorderPainted(false);

	    btnAceptar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnAceptar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnAceptar.setOpaque(false);
	    btnAceptar.setBorderPainted(false); 

	    btnAgregar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnAgregar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnAgregar.setOpaque(false);
	    btnAgregar.setBorderPainted(false);

	    btnRemover.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnRemover.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnRemover.setOpaque(false);
	    btnRemover.setBorderPainted(false);

	    btnCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnCancelar.setOpaque(false);
	    btnCancelar.setBorderPainted(false);

	    btnSalir.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnSalir.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnSalir.setOpaque(false);
	    btnSalir.setBorderPainted(false);
	   
	    barraEdicion.add(btnAgregar);
	    barraEdicion.addSeparator();
	    barraEdicion.addSeparator();
	    barraEdicion.add(btnRemover);
	    
	    barraHerramientas.add(btnAceptar);
	    barraHerramientas.addSeparator();
	    barraHerramientas.addSeparator();
	    barraHerramientas.add(btnCancelar);
	    barraHerramientas.addSeparator();
	    barraHerramientas.addSeparator();
	    barraHerramientas.add(btnSalir);
	        
	  	    
	    
	     tabla= new JTable();
         JScrollPane scroll = new JScrollPane(tabla,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
         

         lblTitulo.setFont(new Font(Font.SERIF,Font.BOLD,20));
         lblTitulo.setBounds(315, 5, 300, 30);
	     panelFondo.add(lblTitulo);
	     

	     panelFrente.setLayout(null);
	     
	     panelFrente.add(lblFactura);
	     lblFactura.setBounds(55, 25, 100, 20);
	     lblFactura.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     panelFrente.add(lblNroFactura);
	     lblNroFactura.setBounds(150, 25, 100, 20);
	     lblNroFactura.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     panelFrente.add(lblFechaE);
	     lblFechaE.setBounds(380, 25, 130, 20);
	     lblFechaE.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     
	     panelFrente.add(lblFecha);
	     lblFecha.setBounds(500, 25, 130, 20);
	     lblFecha.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     panelFrente.add(lblCliente);
	     lblCliente.setBounds(155, 75, 130, 20);
	     lblCliente.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     
	     panelFrente.add(lblPorcDescuento);
	     lblPorcDescuento.setBounds(35, 130, 130, 20);
	     lblPorcDescuento.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     panelFrente.add(lblPorcImpuesto);
	     lblPorcImpuesto.setBounds(350, 130, 130, 20);
	     lblPorcImpuesto.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     panelFrente.add(lblTotalPagar);
	     lblTotalPagar.setBounds(240, 360, 130, 20);
	     lblTotalPagar.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     panelFrente.add(lblTotal);
	     lblTotal.setBounds(325, 360, 130, 20);
	     lblTotal.setFont(new Font(Font.DIALOG,Font.BOLD,15));
     
	     panelFrente.add(txtCliente);
	     txtCliente.setBounds(225, 70, 135, 25);
	     
	     panelFrente.add(txtPorcDescuento);
	     txtPorcDescuento.setBounds(170, 125, 125, 25);
	     
	     panelFrente.add(txtPorcImpuesto);
	     txtPorcImpuesto.setBounds(470, 125, 125, 25);
	   
	     panelFrente.add(btnBuscarCliente);
	     btnBuscarCliente.setBounds(365, 73, 20, 20);
	     
	     panelFrente.add(lblProductos);
	     lblProductos.setBounds(266, 170, 135, 20);
	     lblProductos.setFont(new Font(Font.DIALOG,Font.BOLD,15));
	     
	     panelFrente.add(scroll);
	     scroll.setBounds(40, 205, 550, 140);
	     
	     
	     panelFrente.add(barraEdicion);
	     barraEdicion.setBounds(224, 400, 200, 90);
	     
	     panelFrente.add(barraHerramientas);
	     barraHerramientas.setBounds(171, 500, 280, 90);
	  
    
	     panelFondo.setLayout(null);
         panelFondo.add(panelFrente);
       
	        
         add(panelFondo);
	     setSize(720,700);
	     panelFrente.setBounds(40, 45, 625, 600);
	     setLocationRelativeTo(null);
	     setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);    
	}
	
	public void addListener(WindowListener escuchador)
	{
		this.addWindowListener(escuchador);
	}
	
	public void addListener(ActionListener escuchador)
	{
		btnBuscarCliente.addActionListener(escuchador);
		btnAceptar.addActionListener(escuchador);
		btnAgregar.addActionListener(escuchador);
	    btnRemover.addActionListener(escuchador);
	    btnCancelar.addActionListener(escuchador);
	    btnSalir.addActionListener(escuchador);
	   
	}
    
	public void addListener(KeyListener escuchador)
	{
		txtPorcDescuento.addKeyListener(escuchador);
		txtPorcImpuesto.addKeyListener(escuchador);
	}
	
	
	public long getNroFactura()
	{
		return Long.parseLong(lblNroFactura.getText());
		
	}
	
	public void setNroFactura(long nroFactura)
	{
		lblNroFactura.setText(String.valueOf(nroFactura));
	}
	
	public void setTotal(double total)
	{
		lblTotal.setText(String.valueOf(total));
	}
	
	public double getTotal()
	{
		return Double.parseDouble(lblTotal.getText());
	}
	
	public String getFecha()
	{
		return lblFecha.getText();
	}
	
	public void setFecha(String fecha)
	{
		lblFecha.setText(fecha);
	}
	
	public void asignarCliente(String cliente)
	{
		txtCliente.setText(cliente);
	}
	
	public String getCliente()
	{
		return txtCliente.getText();
	}
	
	public float getPorcDescuento()
	{
		return Float.parseFloat(txtPorcDescuento.getText());
	}
	
	public float getPorcImpuesto()
	{
		return Float.parseFloat(txtPorcImpuesto.getText());
	}
	
	public void setPorcDescuento(float porc)
	{
		txtPorcDescuento.setText(String.valueOf(porc));
	}
	
	public void setPorcImpuesto(float porc)
	{
		txtPorcImpuesto.setText(String.valueOf(porc));
	}
	
	 public void asignarDatosTabla(TableModel modeloTabla)
	 {
		 tabla.setModel(modeloTabla);
	 }
	 
	 public int getFilaSeleccionada()
     {
			return tabla.getSelectedRow();
	 }
	
}
